home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Panorama / Panorama - Disk 30B (1988-06-08)(Pacific North-West Amigas Club)[WB].zip / Panorama - Disk 30B (1988-06-08)(Pacific North-West Amigas Club)[WB].adf / DNet1.20 / README < prev    next >
Text File  |  1988-03-22  |  11KB  |  293 lines

  1.  
  2. DNET V1.20
  3.  
  4.     DNET (c)Copyright 1987 Matthew Dillon, All Rights Reserved
  5.  
  6.     Matthew Dillon
  7.     891 Regal Rd
  8.     Berkeley, Ca. 94708
  9.  
  10.     ...!ihnp4!ucbvax!dillon     USENET
  11.     dillon@ucbvax.Berkeley.edu    ARPANET
  12.  
  13.     forum:    ...!ihnp4!ucbvax!cory!dnet
  14.         dnet%cory@ucbvax.berkeley.edu
  15.  
  16. COMPILING, UNIX:
  17.  
  18.     Simply run the shell script MAKE.
  19.  
  20. COMPILING, AMIGA:
  21.  
  22.     No compilation is needed, binaries are in the dnet.amiga/bin .    To
  23.     compile, you must have AZTEC C.  You MUST make a precompiled
  24.     symbol table file which contains all the subdirectory includes
  25.     (see SYMBOLS.C in the INCLUDE directory).  You need to assign
  26.     comp: somewhere, make a directory 'include', and place the
  27.     symbol table in that.
  28.  
  29.     As you will note looking at SYMBOLS.C, the precompiled symbol
  30.     table MUST be made with the +L option.
  31.  
  32. GETTING IT RUNNING:
  33.  
  34.     Setting it up on the UNIX system:
  35.     (1) Make a directory (for example, ~/.DNET)
  36.     (2) Modify your .cshrc , adding the following line:
  37.         setenv DNETDIR ~/.DNET/
  38.         (the hanging slash is essential)
  39.     (3) All binaries are usually kept in dnet.unix/bin, add this
  40.         directory to your path (in your .cshrc)
  41.     (4) Place the file 'dnet.servers' in ~/.DNET .  Modify the file
  42.         according to your home directory and where you have put the
  43.         servers.
  44.  
  45.         The file currently cannot handle ~ ... a FULL PATH IS REQUIRED.
  46.  
  47.     NOTE: You may want to chmod the directory 700 to disallow any
  48.     unauthorized access to the network.
  49.  
  50.     Setting it up on the Amiga:
  51.     (1) Set the proper baud rate in preferences.  Bits and protocol do
  52.         not have to be setup.  Alternately, you can specify the
  53.         baud rate on the command line (-bBAUD) when you run DNET.
  54.  
  55.     (2) DNET and the client programs must be available by your path.
  56.         The servers (scopy sterm scli) may be placed anywhere.
  57.  
  58.     (3) The file dnet.servers must be placed in S:, and modified according
  59.         to where you put the servers.  DNET uses this file to auto-start
  60.         servers.
  61.  
  62.         NOTE:  The 'directory' field, currently holding 'ram:', is
  63.         also currently not implemented.  You should use the -d option
  64.         with the UNIX end putfiles (see below)
  65.  
  66.     Starting it up:
  67.     From your Amiga, RUN DNET.  A terminal window will appear.  Dialup
  68.     and login to your UNIX account.  Use an Amiga termcap ('sun' and
  69.     'ansi' also work).
  70.  
  71.     From your UNIX prompt type 'dnet', thereby starting DNET on the
  72.     UNIX end.  The DNET on the Amiga end should detect this, close the
  73.     DNET terminal window, and automatically startup an FTERM.
  74.  
  75.     DNET is now running.
  76.  
  77.     You may then experiment around with multiple FTERM's, PUTFILES,
  78.     etc... (see below for command format).
  79.  
  80.     NOTE:    The Menu options in the original DNET window are used
  81.         (1) to restart DNET if the remote end is already running,
  82.         (2) to send a BREAK over the serial line
  83.         (3) to exit DNET (same as the close gadget).
  84.  
  85.  
  86.     KILLING DNET:
  87.     If you currently have a good connection, you should be able to
  88.     close all currently active client programs.
  89.  
  90.     It will now appear that everything is closed down.  However, DNET
  91.     is still running in the background (and you can even startup
  92.     various client programs again).
  93.  
  94.     1> quitdnet
  95.  
  96.     This will send a packet to DNET causing the remote end (the UNIX
  97.     end) to quit.  Wait two or three seconds, then
  98.  
  99.     1> BREAK 2
  100.  
  101.     Where '2' is the CLI you ran DNET under originally.  It may not
  102.     be a '2'.  This should cause DNET's window to come up again, and
  103.     since the DNET on the UNIX end has exited, you should have a
  104.     UNIX prompt again.
  105.  
  106.     NOTE:    If you have not closed all clients, they will exit at this
  107.     point (though not as nicely).  Always wait for all clients to exit
  108.     before closing DNET.
  109.  
  110.     At this point you may close the DNET window to kill dnet.
  111.  
  112.     ------------
  113.     Alternately, you may simply hangup the modem, BREAK dnet, and
  114.     close the DNET-Terminal window.  Be sure to close all active
  115.     clients before doing so.    The only processes that will be
  116.     left running on the UNIX system will be any servers that were
  117.     started up.  These take 0 cpu and very little swap.
  118.  
  119.  
  120. SERVERS
  121.  
  122.     Servers are started on demand on both ends. The Amiga end will kill
  123.     any servers that were started when you close DNET. The UNIX end
  124.     will leave any servers idle in the background when you kill DNET
  125.     or hangup.  These servers will be available the next time you log
  126.     in.
  127.  
  128.     To kill servers on the UNIX end, you must kill the process id.
  129.     'ps x' will give you all processes running under your uid.  A
  130.     simple 'kill pid' should do it.
  131.  
  132.  
  133. BASIC THEORY, UNIX END:
  134.     The DNET driver accepts connections from clients over UNIX domain
  135.     sockets.  It multiplexes and packetizes the data, sends it to
  136.     whatever is on descriptor 0 (usually your tty).  It receives data
  137.     from the serial port, de-packetizes it, demuxes it, and sends it to
  138.     the proper client.   Additionaly, it receives open requests from
  139.     the remote end and tries to connect to the proper server, starting
  140.     the server if necessary.
  141.  
  142.     All the servers are UNIX domain sockets placed in the directory
  143.     specified by the enviroment variable DNETDIR (if the enviroment
  144.     variable DNETDIR is not defined, then in whatever directory they
  145.     were run from).  The path specification in this enviroment
  146.     variable must have a hanging slash.
  147.  
  148. BASIC THEORY, AMIGA END:
  149.     The communications protocol, obviously, is the same. In fact, it is
  150.     completely symetrical (there is no master/slave relationship
  151.     in this protocol).
  152.  
  153.     The DNET driver on the Amiga usually opens the serial port with the
  154.     default preferences (or current modes if you have a terminal
  155.     program active at the time you run DNET).
  156.  
  157.     public message ports are used to send messages back and forth.    The
  158.     DNET driver on the Amiga end will allocate memory as needed to hold
  159.     incomming data.  FLOW CONTROL IS NOT IMPLEMENTED.
  160.  
  161.  
  162. CLIENT PROGRAMS AND ASSOCIATED SERVERS:
  163.  
  164.            SERVERS             CLIENT PROGRAMS
  165.     PORT    UNIX    AMIGA        UNIX        AMIGA
  166.     ----    ---------------        --------------------------
  167.  
  168.     8192    SCOPY   SCOPY        PUTFILES        PUTFILES
  169.     8193    SSHELL  -            -            FTERM 8193
  170.     8194    -        -            -            -
  171.     8195    (1)     STERM           DRAW 8195       FTERM
  172.     8196    -        SCLI        DSOC 8196        -
  173.     8197    SLOADAV -            -            LOADAV
  174.  
  175.     (1) This servers is implemented internally.
  176.  
  177. AMIGA SERVERS:
  178.  
  179.     STERM   -'talk' window.
  180.  
  181.          Brings up a talk window.  You can talk with whoever is on
  182.          the other end (an FTERM if the other end is another Amiga,
  183.          or a DRAW 8195 if the other end is a UNIX machine).
  184.  
  185.     SCLI    -remote shell unix->amiga.    NOTE1: My PIPE: device must exist
  186.          for this to work.    NOTE2: Only works properly if you are at
  187.          a CLI prompt when you exit (^C).  NOTE3: Currently a hack.
  188.  
  189.          Currently can handle only one connection at a time.
  190.  
  191.     SCOPY   -File copy server.    Receives files and directory structures
  192.          from the remote client and places them in the specified
  193.          directory.  If no directory specified by the remote client,
  194.          they are placed in DF0: .    Currently can handle only one
  195.          connection at a time.
  196.  
  197. UNIX SERVERS:
  198.  
  199.     SCOPY   -same as Amiga server, but for Amiga->UNIX transfers.  However,
  200.          the UNIX version can handle multiple connections (multiple
  201.          putfiles from the Amiga end).
  202.  
  203.     SSHELL  -shell server, for use with the FTERM program on the Amiga
  204.          end (when qualified by port 8193). This is the same as FTERM's
  205.          default port, but automatically exec'd an 'rlogin localhost'
  206.          in the terminal window yielding a named shell.
  207.  
  208.     SLOADAV -Load average server, for use the LOADAV on the Amiga end.
  209.          The program 'la' must exist on the UNIX end.
  210.  
  211.  
  212. CLIENT PROGRAMS:
  213.  
  214.     (unix)          DRAW port#
  215.  
  216.     Put terminal in RAW mode and connect to the specified port.
  217.     The remote end must recognize some way of sending an EOF
  218.     (STERM recognizes a ^C, for instance) because only the remote
  219.     end can close the connection.
  220.  
  221.     (unix)          DSOC port#
  222.  
  223.     Leave terminal in cooked mode and connect to the specified
  224.     port #.  This has the advantage that ^C's will kill the DSOC.
  225.     Additionaly, you have input-editing.  Used mainly with remote
  226.     shells.
  227.  
  228.     (unix/amiga)    PUTFILES [-ddirectory] file/dir file/dir file/dir ....
  229.  
  230.     Send one or more files or directories to the remote host, placing
  231.     them in the directory specified by the -d command.  If no -d
  232.     is specified, DF0: is used (amiga server).  The UNIX server uses
  233.     the directory specified in dnet.servers on the UNIX end as a
  234.     default.
  235.  
  236.     Currently, no file compression is done.
  237.  
  238.     (amiga)         TERM [port#]
  239.  
  240.     OBSOLETE
  241.  
  242.     (amiga)         FTERM [port#]
  243.  
  244.     Used to connect to a pty/shell on the UNIX end.  This is faster
  245.     than TERM (one less process to go through).
  246.  
  247.     (amiga)         LOADAV [seconds/sample]
  248.  
  249.     Connect to the remote SLOADAV server on the UNIX system, and
  250.     display the load graphically.  Updates occur every 60 seconds,
  251.     or in the time specified by the argument.
  252.  
  253.     (amiga)         QUITDNET
  254.  
  255.     First close any active clients (terminal windows, loadav windows,
  256.     etc....).  Ensure the remote end is not connected to any local
  257.     servers.
  258.  
  259.     Cause the DNET on the UNIX end to quit.  You then BREAK the DNET
  260.     on the Amiga end, getting a terminal window.  You can then close
  261.     the window and thus quit out of DNET on the local end.
  262.  
  263.  
  264.  
  265. QUICKIE DESCRIPTION OF LOW LEVEL PACKET THEORY:
  266.  
  267.     DNET uses a windowed-packet scheme, as in transmission windows... up
  268. to 4 packets can be sent before one of them is acked.  Each packet is fully
  269. checked with three check bytes (one for the header, and two for the data).
  270. If a packet fails it is ignored.  If the receiver detects a missing packet
  271. it requests it be resent.  If the sender doesn't get an ack within a given
  272. timeout it sends a CHECK packet, which asks the receiver if it got it or
  273. not (rather than just resend the packet, which might take a while).
  274.  
  275.     Taking the possibilities of long freeze times on the UNIX end due
  276. to high load factor, the UNIX DNET will play catch up if it receives
  277. multiple CHECK packets for the same window, responding only to the last one
  278. received.
  279.  
  280.     The channel multiplexing is embedded in the packet data... that is,
  281. you might have the data for several channels in a single packet, so
  282. maximum throughput is maintained even when you have a lot of little things
  283. going on.
  284.  
  285.     The packet protocol can handle up to 65535 channels.  The actual
  286. implementation can only handle 128 handles, and is further limited by the
  287. number of file descriptors available on the UNIX side.    This is usually
  288. around 64, or approximately 60 connections.
  289.  
  290.                     -Matt
  291.  
  292.  
  293.